SUBDIRS-y += drivers
SUBDIRS-y += daemon
-.PHONY: all
-all: build
-
-.PHONY: build
-build:
- @set -e; for subdir in $(SUBDIRS-y); do \
- $(MAKE) -C $$subdir all; \
- done
-
-.PHONY: install
-install:
- @set -e; for subdir in $(SUBDIRS-y); do \
- $(MAKE) -C $$subdir install; \
- done
-
-.PHONY: clean
clean:
rm -rf *.a *.so *.o *.rpm $(LIB) *~ $(DEPS) TAGS
- @set -e; for subdir in $(SUBDIRS-y); do \
- $(MAKE) -C $$subdir clean; \
- done
+
+.PHONY: all clean install
+all clean install: %: subdirs-%
BLKTAP_ROOT := ..
include $(XEN_ROOT)/tools/Rules.mk
+SUBDIRS-y :=
+SUBDIRS-y += lib
+
IBIN = blktapctrl
INST_DIR = $(SBINDIR)
-LIBDIR = lib
-
LIBS := -lxenstore
LIBS += -Llib
LIBS += -lblktap
CFLAGS += -Wp,-MD,.$(@F).d
DEPS = .*.d
-all: libblktap $(IBIN)
-
-blktapctrl: tapdisk-daemon.c $(OBJS)
- $(CC) $(CFLAGS) -o blktapctrl tapdisk-daemon.c $(LIBS) $(OBJS)
+all: $(IBIN)
-libblktap:
- @set -e
- $(MAKE) -C $(LIBDIR) all
+blktapctrl: tapdisk-daemon.c $(OBJS) subdir-all-lib
+ $(CC) $(CFLAGS) -o blktapctrl tapdisk-daemon.c $(LDFLAGS) $(LIBS) $(OBJS)
install: all
- $(MAKE) -C $(LIBDIR) install
$(INSTALL_DIR) -p $(DESTDIR)$(INST_DIR)
$(INSTALL_PROG) $(IBIN) $(DESTDIR)$(INST_DIR)
clean:
- $(MAKE) -C $(LIBDIR) clean
rm -rf *.o *~ $(IBIN) $(DEPS) xen TAGS
-.PHONY: all clean install blktapctrl libblktap
+.PHONY: all clean install blktapctrl
+all clean install: %: subdirs-%
-include $(DEPS)
libblktap.a: $(OBJS)
$(CC) $(CFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,$(SONAME) $(SHLIB_CFLAGS) \
- -o libblktap.so.$(MAJOR).$(MINOR) $^ $(LIBS)
+ $(LDFLAGS) -o libblktap.so.$(MAJOR).$(MINOR) $^ $(LIBS)
ln -sf libblktap.so.$(MAJOR).$(MINOR) libblktap.so.$(MAJOR)
ln -sf libblktap.so.$(MAJOR) libblktap.so
$(AR) rc $@ libblktap.so
all: $(IBIN) lock-util qcow-util
tapdisk: $(TAP-OBJS-y) $(BLK-OBJS-y) $(MISC-OBJS-y) tapdisk.c
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(AIOLIBS) $(LDFLAGS_img)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(LDFLAGS_img)
tapdisk2: $(TAP-OBJS-y) $(BLK-OBJS-y) $(MISC-OBJS-y) tapdisk2.c
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(AIOLIBS) $(LDFLAGS_img)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(LDFLAGS_img)
tapdisk-client: tapdisk-client.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(LDFLAGS_img)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(LDFLAGS_img)
tapdisk-stream tapdisk-diff: %: %.o $(TAP-OBJS-y) $(BLK-OBJS-y)
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(AIOLIBS) $(LDFLAGS_img)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(LDFLAGS_img)
td-util: td.o tapdisk-utils.o tapdisk-log.o
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(LDFLAGS_img)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(LDFLAGS_img)
lock-util: lock.c
- $(CC) $(CFLAGS) -DUTIL -o lock-util lock.c $(LIBS)
+ $(CC) $(CFLAGS) -DUTIL -o lock-util lock.c $(LDFLAGS) $(LIBS)
.PHONY: qcow-util
qcow-util: img2qcow qcow2raw qcow-create
img2qcow qcow2raw qcow-create: %: %.o $(TAP-OBJS-y) $(BLK-OBJS-y)
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS) $(AIOLIBS) $(LDFLAGS_img)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) $(AIOLIBS) $(LDFLAGS_img)
install: all
$(INSTALL_DIR) -p $(DESTDIR)$(INST_DIR)
install: all
lvm-util: lvm-util.o
- $(CC) $(CFLAGS) -DLVM_UTIL -o lvm-util lvm-util.c
+ $(CC) $(CFLAGS) -DLVM_UTIL $(LDFLAGS) -o lvm-util lvm-util.c
clean:
rm -rf *.o *~ $(DEPS) $(IBIN)
BLKTAP_ROOT := ../
include $(XEN_ROOT)/tools/Rules.mk
+SUBDIRS-y :=
+SUBDIRS-y += lib
+
IBIN = vhd-util vhd-update
INST_DIR = $(SBINDIR)
-LIBDIR = lib
-
CFLAGS += -Werror
CFLAGS += -Wno-unused
CFLAGS += -I../include
CFLAGS += -static
endif
-LIBS := -L$(LIBDIR) -lvhd
+LIBS := -Llib -lvhd
LIBS += -luuid
# Get gcc to generate the dependencies for us.
all: build
-build: libvhd $(IBIN)
-
-libvhd:
- @set -e
- $(MAKE) -C $(LIBDIR) all
+build: $(IBIN)
-vhd-util: vhd-util.o
- $(CC) $(CFLAGS) -o vhd-util vhd-util.o $(LIBS)
+vhd-util: vhd-util.o subdir-all-lib
+ $(CC) $(CFLAGS) -o vhd-util vhd-util.o $(LDFLAGS) $(LIBS)
-vhd-update: vhd-update.o
- $(CC) $(CFLAGS) -o vhd-update vhd-update.o $(LIBS)
+vhd-update: vhd-update.o subdir-all-lib
+ $(CC) $(CFLAGS) -o vhd-update vhd-update.o $(LDFLAGS) $(LIBS)
install: all
- $(MAKE) -C $(LIBDIR) install
$(INSTALL_DIR) -p $(DESTDIR)$(INST_DIR)
$(INSTALL_PROG) $(IBIN) $(DESTDIR)$(INST_DIR)
clean:
- $(MAKE) -C $(LIBDIR) clean
rm -rf *.o *~ $(DEPS) $(IBIN)
-.PHONY: all build clean install libvhd vhd-util vhd-update
+.PHONY: all build clean install vhd-util vhd-update
+all clean install: %: subdirs-%
-include $(DEPS)
libvhd.a: $(LIB-OBJS)
$(CC) $(CFLAGS) -Wl,$(SONAME_LDFLAG),$(LIBVHD-SONAME) $(SHLIB_CFLAGS) \
- -o libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(LIBS) $^
+ $(LDFLAGS) -o libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) $(LIBS) $^
ln -sf libvhd.so.$(LIBVHD-MAJOR).$(LIBVHD-MINOR) libvhd.so.$(LIBVHD-MAJOR)
ln -sf libvhd.so.$(LIBVHD-MAJOR) libvhd.so
$(AR) rc $@ $^